"""
Celery将这三者串联起来
生产者     队列      消费者

1、创建celery

2、设置队列

3、设置生产者
    任务的本质就是函数
    这个函数必须要被celery的实例对象的task装饰器装饰
    必须让调用celery实例对象的自动监测方法来检测任务

4、设置消费者
    celery -A celery实例对象的文件 worker -l INFO

    celery -A celery_tasks.main worker -l info  (Terminal中运行)
    默认的并发量是4个

    pip install eventlet安装后可以指定并发量，下面的并发量以1000为例子
    celery -A celery_tasks.main worker -l info -P eventlet -c 1000

"""

# ①让celery去加载我们当前工程中的配置文件
import os

from celery import Celery

# ① 让celery去加载我们当前工程中的配置文件
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduomall.settings")

# ② 创建celery实例对象
# 第一个参数是main
# 习惯上，填写当前脚本的工程名就可以
# 给celery的实例取个名字，唯一就可以
app = Celery('celery_tasks')

# ③ celery 设置broker（队列）
# config_from _object的参数 就是配置文件的路径
app.config_from_object('celery_tasks.config')

# ④ 让celery自动监测任务
# 参数是列表，列表的元素是任务的包路径
# 每一个新添加的celery任务都要在这里注册
app.autodiscover_tasks(['celery_tasks.sms', 'celery_tasks.email'])
